<?php
/**
 * Created by PhpStorm.
 * User: zd
 * Date: 2018/8/17
 * Time: 14:42
 */

namespace app\api\controller;

use app\api\service\Token;
use think\Cache;
use think\Controller;
use think\Exception;

class BaseController extends Controller
{
    /**
     * 调用权限判断方法,管理员用户都可以访问
     */
    protected function checkPrimaryScope(){
        Token::needPrimaryScope();
    }
    /**
     * 调用权限判断方法，只有用户可以访问
     */
    protected function checkExclusiveScope(){
        Token::needExclusiveScope();
    }

    /**
     * 应用权限检查
     */
    protected function checkAuthorize(){
        Token::permissionCheck();
    }

    /**
     * 获取缓存
     * @param $name
     * @return bool|mixed
     */
    protected function getCache($name){
        try{
            if ( Cache::store('redis')->has($name)){
                $data = Cache::store('redis')->get($name);//获取缓存
                return $data;
            }
        }catch (Exception $exception){
            //日志记录，通知等其他操作
            return false;//缓存读取失败
        }
        return false;//缓存读取失败
    }

    /**
     * 设置缓存
     * @param $name
     * @param $data
     * @param $expire
     * @return bool
     */
    protected function saveToCache($name,$data,$expire){
        try{
            Cache::store('redis')->set($name,$data,$expire);
        }catch (Exception $exception){
            //日志记录，通知等其他操作
            return false;
        }
        return true;
    }



    /**
     * 清空缓存
     * @param $name
     * @return bool
     */
    protected function  removeCache($name){
        //清空缓存
        try{
            Cache::store('redis')->rm($name);
        }catch (Exception $e){
            //日志记录，通知等其他操作
            return false;
        }
        return true;
    }

}